Member Variable |
A class may have variables to store information to keep the object integrity so that the object can provide some sort of functionability. For instance, consider the Box class previously discussed. This class has three integer variables to store the physical dimensions of each book. Una clase puede tener variables que le permiten almacenar información para mantener su integridad o para proporcionar funcionalidad. Por ejemplo, considere la clase Box que discutió previamente. Esta clase tiene tres variables enteras para almacenar las dimensiones físicas de cada libro. |
Tip |
To add member variables to a class, you can edit the respective header file (*.h) of the class. Para agregar variables miembro a una clase, solo edite el archivo de encabezado respectivo (*.h) de la clase. |
Tip |
After adding member variables to a class, you must appropriately initialize these variables in the constructor of the class as shown in the Compact Disk class shown below. Después de agregar variables miembro a una clase, usted debe inicializar en forma apropiada estas variables en el constructor de la clase como se muestra en la clase de Disco Compacto mostrada debajo. |
CompactDisk.h |
//__________________ CompactDisk.h #pragma once class CompactDisk { public: CompactDisk(); ~CompactDisk(); int songCount; double price; wstring artist; }; |
CompactDisk.cpp |
//__________________ CompactDisk.cpp #include "StdAfx.h" #include "CompactDisk.h" CompactDisk::CompactDisk() { songCount = 0; price = 0.0; artist = L"Unknown"; } CompactDisk::~CompactDisk() { } |
Problem 1 |
Find the output of the code below in the Library program previously discussed. Encuentre la salida del código de abajo in el programa de Library que fue previamente discutido. |
Library.cpp |
void Library::Window_Open(Win::Event& e) { Book book; book.price = 198.50; book.numbPages = 220; book.author = L"Edgar Alan"; book.color = RGB(0, 0, 200); // Blue book.numbPages++; book.price*=2.0; // wstring text; Sys::Format(text, L"The book of %s has %d pages and costs %.2f", book.author.c_str(), book.numbPages, book.price); this->Text = text; } |
Problem 2 |
Find the output of the code below in the Library program previously discussed. Encuentre la salida del código de abajo in el programa de Library que fue previamente discutido. |
Library.h |
#pragma once //______________________________________ Library.h #include "resource.h" #include "Book.h" class Library: public Win::Dialog { public: Library() { } ~Library() { } void DisplayBookInfo(Book& book); ... }; |
Library.cpp |
... void Library::Window_Open(Win::Event& e) { Book book[2]; book[0].price = 198.50; book[0].numbPages = 220; book[0].author = L"Edgar Allan"; book[0].color = RGB(0, 0, 200); // Blue book[1].numbPages++; book[1].price+=12.50; book[1].author = L"Harry Potter"; // DisplayBookInfo(book[0]); DisplayBookInfo(book[1]); } void Library::DisplayBookInfo(Book& book) { wstring text; Sys::Format(text, L"The book of %s has %d pages and costs %.2f", book.author.c_str(), book.numbPages, book.price); this->MessageBox(text, L"Book Info", MB_OK); } |
Problem 3 |
Find the output of the code below in the Library program previously discussed. Encuentre la salida del código de abajo in el programa de Library que fue previamente discutido. |
Library.h |
#pragma once //______________________________________ Library.h #include "resource.h" #include "Book.h" #define BOOK_COUNT 3 class Library: public Win::Dialog { public: Library() { } ~Library() { } void DisplayBookInfo(Book& book); wchar_t *GetAuthor(int index); ... }; |
Library.cpp |
... void Library::Window_Open(Win::Event& e) { Book book[BOOK_COUNT]; for(int i = 0; i < BOOK_COUNT; i++) { book[i].numbPages = 10*(i+1); book[i].price = 2.0*book[i].numbPages; book[i].author = GetAuthor(i); DisplayBookInfo(book[i]); } } void Library::DisplayBookInfo(Book& book) { wstring text; Sys::Format(text, L"The book of %s has %d pages and costs %.2f", book.author.c_str(), book.numbPages, book.price); this->MessageBox(text, L"Book Info", MB_OK); } wchar_t* Library::GetAuthor(int index) { switch(index) { case 0: return L"Robert Hicks"; case 1: return L"Juan Perez"; } return L"Alicia Smith"; } |
Tip |
Most programmers who use structured programming have a difficult time switching to Object-Oriented Programming. The following tips will help you identify when you are using structure programming instead of OOP.
La mayoría de los programadores que usan la programación estructurada tiene problemas para cambiar a la Programación Orientada a Objetos. Los siguientes consejos le pueden ayudar a identificar cuando usted está usando la programación estructurada en lugar de la programación orientada a objetos.
|
Constant Member Variables |
In some cases, it is necessary to have constant member variables. The code below illustrates how to declare and initialize a constant member variable; in this case the number of pages of the book is 100. En algunas clases es necesario declarar variables miembro constantes. El código de abajo ilustra como declarar e inicializar una variable miembro constante; en este caso el número de páginas del libro es de 100. |
Book.h |
class Book.h { public: Book(); ~Book(); const int numPages; }; |
Book.cpp |
Book::Book() : numbPages(100) { } Book::~Book() { } |